<template>
  <div class="outer">
    <h1>App</h1>
    <List @atguigu="getListData"/>
  </div>
</template>

<script>
import _ from "lodash";
import List from "./components/List";
export default {
  name: "App",
  data() {
    return {
      //定义一个初始值,因为ajax请求过来的数据是异步的,而代码在执行的时候,可能会要用到这个数据,如果没有这个数据,那么就会报错,所以先定义一个初始值,在到来之前,让代码可以执行
      list: [],
    };
  },
  components: {
    List,
  },
  methods: {
    //接受List的值
    getListData(list){
      //1.如果直接写this.list=list,那就两个东西长得一样了,这样就是地址复制
      // this.list=list

      //2.如果是写 this.list=[...list]那就只是浅拷贝,如果数据只是一层没有问题,但是如果数据过多,那么就要用深拷贝;
      // this.list=[...list];

      //3.使用深拷贝
      this.list=_.cloneDeep(list);

      //判断是否是深拷贝
      console.log(this.list[0] === list[0]);
    }
  },
};
</script>

<style scoped>
.outer {
  height: 400px;
  background: yellowgreen;
}
</style>